package com.enjoyor.soa.traffic.api.dto.gps;

/**
 * 围栏类型
 */
public enum TransboundaryTypeEnum {
	/**
	 * <b>禁区</b><br />
	 * 特定时间内，设备不允许进入特定区域。速度限速无效<br />
	 * 对应报警：<br />
	 * &nbsp;&nbsp;&nbsp;&nbsp;1).特定时间内进入禁区报警：{@link AlarmTypeEnum#TRANS_ALARM_FORBIDDEN_IN }<br />
	 * &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对应通知：{@link NotifyTypeEnum#TRANSBOUNDARY_ALARM_IN }
	 */
	FORBIDDEN("禁区", 0),
	/**
	 * <b>围栏</b><br />
	 * 特定时间内，设备只允许在特定区域内活动。<br />
	 * 对应报警：<br />
	 * &nbsp;&nbsp;&nbsp;&nbsp;1).特定时间内出围栏报警：{@link AlarmTypeEnum#TRANS_ALARM_FENCE_OUT }<br />
	 * &nbsp;&nbsp;&nbsp;&nbsp;2).特定时间内及在围栏内超速报警：{@link AlarmTypeEnum#TRANS_ALARM_FENCE_SPEED }
	 * &nbsp;&nbsp;&nbsp;&nbsp;3).特定时间内及在围栏内低速报警：{@link AlarmTypeEnum#TRANS_ALARM_FENCE_LOW_SPEED }
	 */
	FENCE("围栏", 1),
	/**
	 * <b>通行证</b><br />
	 * 对于特定区域，只允许在特定时间通过。<br />
	 * 对应报警：<br />
	 * &nbsp;&nbsp;&nbsp;&nbsp;1).不在特定时间内通行报警：{@link AlarmTypeEnum#TRANS_ALARM_PASS_TIME }<br />
	 * &nbsp;&nbsp;&nbsp;&nbsp;2).在特定时间及在通行证范围内通行时超速报警：{@link AlarmTypeEnum#TRANS_ALARM_PASS_SPEED }<br />
	 * &nbsp;&nbsp;&nbsp;&nbsp;3).在特定时间及在通行证范围内通行时低速报警：{@link AlarmTypeEnum#TRANS_ALARM_PASS_LOW_SPEED }<br />
	 */
	PASS("通行证", 2);

	private String name;
	private Integer code;

	private TransboundaryTypeEnum(String name, Integer code) {
		this.name=name;
		this.code=code;
	}

	public static String getName(Integer code) {
		for (TransboundaryTypeEnum l : TransboundaryTypeEnum.values()) {
			if (l.code == code) {
				return l.name;
			}
		}
		return null;
	}

	public static TransboundaryTypeEnum getEnum(Integer code) {
		for (TransboundaryTypeEnum l : TransboundaryTypeEnum.values()) {
			if (l.code == code) {
				return l;
			}
		}
		return null;
	}
	
	public String getName() {
		return name;
	}

	public Integer getCode() {
		return code;
	}
}
